home *** CD-ROM | disk | FTP | other *** search
/ Mac-Source 1994 July / Mac-Source_July_1994.iso / C and C++ / Text⁄Files / Dialectic 1.1 Source / Dialectic ƒ / Raw dialects ƒ / WAREZ.c < prev   
Text File  |  1994-02-14  |  6KB  |  305 lines

  1. /**********************************************************************\
  2.  
  3. File:        WAREZ.c
  4.  
  5. Purpose:    This module handles actually converting text into WAREZ talk.
  6.  
  7.  
  8. Dialectic -=- dialect text conversion extraordinare
  9. Copyright ©1994, Mark Pilgrim
  10.  
  11. This program is free software; you can redistribute it and/or modify
  12. it under the terms of the GNU General Public License as published by
  13. the Free Software Foundation; either version 2 of the License, or
  14. (at your option) any later version.
  15.  
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19. GNU General Public License for more details.
  20.  
  21. You should have received a copy of the GNU General Public License
  22. along with this program in a file named "GNU General Public License".
  23. If not, write to the Free Software Foundation, 675 Mass Ave,
  24. Cambridge, MA 02139, USA.
  25.  
  26. \**********************************************************************/
  27.  
  28. #include "dialectic dispatch.h"
  29. #include "dialectic utilities.h"
  30. #include "program globals.h"
  31.  
  32. void ConvertWAREZ(void)
  33. {
  34.     char            oneChar;
  35.     
  36.     if ((ThisChar()=='.') && (!IsAlpha(NextChar(1))) && (!IsNumeric(NextChar(1))))
  37.     {
  38.         StoreString("\p!!");
  39.         InputPlus(1);
  40.         return;
  41.     }
  42.     
  43.     if (ThisChar()==0x27)
  44.     {
  45.         StoreChar(0x22);
  46.         InputPlus(1);
  47.         return;
  48.     }
  49.     
  50.     if (ThisChar()=='’')
  51.     {
  52.         StoreChar('”');
  53.         InputPlus(1);
  54.         return;
  55.     }
  56.     
  57.     if (!IsAlpha(ThisChar()))
  58.     {
  59.         gInWord=FALSE;
  60.         StoreChar(ThisChar());
  61.         InputPlus(1);
  62.         return;
  63.     }
  64.     
  65.     oneChar=(ThisChar())|0x20;
  66.     
  67.     if ((!gInWord) && (oneChar=='d') && ((NextChar(1)|0x20)=='u') && ((NextChar(2)|0x20)=='d') && ((NextChar(3)|0x20)=='e'))
  68.     {
  69.         gInWord=TRUE;
  70.         StoreString("\pD00D");
  71.         InputPlus(4);
  72.         return;
  73.     }
  74.     
  75.     if ((gInWord) && (oneChar=='o') && ((NextChar(1)|0x20)=='u') && ((NextChar(2)|0x20)=='l') && ((NextChar(3)|0x20)=='d'))
  76.     {
  77.         StoreString("\pUD");
  78.         InputPlus(4);
  79.         return;
  80.     }
  81.     
  82.     if ((gInWord) && (oneChar=='o') && ((NextChar(1)|0x20)=='u') && ((NextChar(2)|0x20)=='g') && ((NextChar(3)|0x20)=='h'))
  83.     {
  84.         StoreString("\pUF");
  85.         InputPlus(4);
  86.         return;
  87.     }
  88.     
  89.     if ((gInWord) && (oneChar=='a') && ((NextChar(1)|0x20)=='u') && ((NextChar(2)|0x20)=='g') && ((NextChar(3)|0x20)=='h'))
  90.     {
  91.         StoreString("\pAFF");
  92.         InputPlus(4);
  93.         return;
  94.     }
  95.     
  96.     if ((oneChar=='i') && ((NextChar(1)|0x20)=='l') && ((NextChar(2)|0x20)=='e'))
  97.     {
  98.         gInWord=TRUE;
  99.         StoreString("\pIEL");
  100.         InputPlus(3);
  101.         return;
  102.     }
  103.     
  104.     if (oneChar=='o')
  105.     {
  106.         gInWord=TRUE;
  107.         StoreChar('0');
  108.         InputPlus(1);
  109.         return;
  110.     }
  111.     
  112.     if (oneChar=='i')
  113.     {
  114.         gInWord=TRUE;
  115.         StoreChar('1');
  116.         InputPlus(1);
  117.         return;
  118.     }
  119.     
  120.     if ((!gInWord) && (oneChar=='t') && ((NextChar(1)|0x20)=='o') && (!IsAlpha(NextChar(2))))
  121.     {
  122.         gInWord=TRUE;
  123.         StoreChar('2');
  124.         InputPlus(2);
  125.         return;
  126.     }
  127.     
  128.     if ((oneChar=='f') && ((NextChar(1)|0x20)=='o') && ((NextChar(2)|0x20)=='r') && ((NextChar(3)|0x20)=='e'))
  129.     {
  130.         gInWord=TRUE;
  131.         StoreChar('4');
  132.         InputPlus(4);
  133.         return;
  134.     }
  135.     
  136.     if ((oneChar=='f') && ((NextChar(1)|0x20)=='o') && ((NextChar(2)|0x20)=='r'))
  137.     {
  138.         gInWord=TRUE;
  139.         StoreChar('4');
  140.         InputPlus(3);
  141.         return;
  142.     }
  143.     
  144.     if (oneChar=='s')
  145.     {
  146.         gInWord=TRUE;
  147.         StoreChar('5');
  148.         InputPlus(1);
  149.         return;
  150.     }
  151.     
  152.     if ((oneChar=='a') && ((NextChar(1)|0x20)=='t') && ((NextChar(2)|0x20)=='e'))
  153.     {
  154.         gInWord=TRUE;
  155.         StoreChar('8');
  156.         InputPlus(3);
  157.         return;
  158.     }
  159.     
  160.     if ((!gInWord) && (oneChar=='b') && ((NextChar(1)|0x20)=='e'))
  161.     {
  162.         gInWord=TRUE;
  163.         StoreChar('B');
  164.         InputPlus(2);
  165.         return;
  166.     }
  167.     
  168.     if ((!gInWord) && (oneChar=='s') && ((NextChar(1)|0x20)=='e') && ((NextChar(2)|0x20)=='e') && (!IsAlpha(NextChar(3))))
  169.     {
  170.         gInWord=TRUE;
  171.         StoreChar('C');
  172.         InputPlus(3);
  173.         return;
  174.     }
  175.     
  176.     if ((!gInWord) && (oneChar=='a') && ((NextChar(1)|0x20)=='m') && (!IsAlpha(NextChar(2))))
  177.     {
  178.         gInWord=TRUE;
  179.         StoreChar('M');
  180.         InputPlus(2);
  181.         return;
  182.     }
  183.     
  184.     if ((!gInWord) && (oneChar=='a') && ((NextChar(1)|0x20)=='r') && ((NextChar(2)|0x20)=='e') && (!IsAlpha(NextChar(3))))
  185.     {
  186.         gInWord=TRUE;
  187.         StoreChar('R');
  188.         InputPlus(3);
  189.         return;
  190.     }
  191.     
  192.     if ((!gInWord) && (oneChar=='e') && ((NextChar(1)|0x20)=='x'))
  193.     {
  194.         gInWord=TRUE;
  195.         StoreChar('X');
  196.         InputPlus(2);
  197.         return;
  198.     }
  199.     
  200.     if ((!gInWord) && (oneChar=='w') && ((NextChar(1)|0x20)=='h') && ((NextChar(2)|0x20)=='y') && (!IsAlpha(NextChar(3))))
  201.     {
  202.         gInWord=TRUE;
  203.         StoreChar('Y');
  204.         InputPlus(3);
  205.         return;
  206.     }
  207.     
  208.     if ((oneChar=='c') && ((NextChar(1)|0x20)=='h'))
  209.     {
  210.         gInWord=TRUE;
  211.         StoreString("\pCH");
  212.         InputPlus(2);
  213.         return;
  214.     }
  215.     
  216.     if ((!gInWord) && (oneChar=='c'))
  217.     {
  218.         gInWord=TRUE;
  219.         StoreChar('K');
  220.         InputPlus(1);
  221.         return;
  222.     }
  223.     
  224.     if ((gInWord) && (oneChar=='s') && ((NextChar(1)|0x20)=='e') && (!IsAlpha(NextChar(2))))
  225.     {
  226.         StoreChar('Z');
  227.         InputPlus(2);
  228.         return;
  229.     }
  230.     
  231.     if ((gInWord) && (oneChar=='e') && ((NextChar(1)|0x20)=='s') && (!IsAlpha(NextChar(2))))
  232.     {
  233.         StoreString("\pEZ");
  234.         InputPlus(2);
  235.         return;
  236.     }
  237.     
  238.     if ((gInWord) && (oneChar=='s') && (!IsAlpha(NextChar(1))))
  239.     {
  240.         StoreChar('Z');
  241.         InputPlus(1);
  242.         return;
  243.     }
  244.     
  245.     if ((oneChar=='p') && ((NextChar(1)|0x20)=='h'))
  246.     {
  247.         gInWord=TRUE;
  248.         StoreChar('F');
  249.         InputPlus(2);
  250.         return;
  251.     }
  252.     
  253.     if ((!gInWord) && (oneChar=='y') && ((NextChar(1)|0x20)=='o') && ((NextChar(2)|0x20)=='u') && ((NextChar(3)|0x20)=='r'))
  254.     {
  255.         gInWord=TRUE;
  256.         StoreString("\pUR");
  257.         InputPlus(4);
  258.         return;
  259.     }
  260.     
  261.     if ((!gInWord) && (oneChar=='y') && ((NextChar(1)|0x20)=='o') && ((NextChar(2)|0x20)=='u') && (!IsAlpha(NextChar(3))))
  262.     {
  263.         gInWord=TRUE;
  264.         StoreChar('U');
  265.         InputPlus(3);
  266.         return;
  267.     }
  268.     
  269.     if ((oneChar=='e') && ((NextChar(1)|0x20)=='a'))
  270.     {
  271.         gInWord=TRUE;
  272.         StoreString("\pEE");
  273.         InputPlus(2);
  274.         return;
  275.     }
  276.     
  277.     if ((oneChar=='a') && ((NextChar(1)|0x20)=='n') && ((NextChar(2)|0x20)=='d'))
  278.     {
  279.         gInWord=TRUE;
  280.         StoreChar('&');
  281.         InputPlus(3);
  282.         return;
  283.     }
  284.     
  285.     if ((!gInWord) && (oneChar=='w') && ((NextChar(1)|0x20)=='a') && ((NextChar(2)|0x20)=='s'))
  286.     {
  287.         gInWord=TRUE;
  288.         StoreString("\pWUZ");
  289.         InputPlus(3);
  290.         return;
  291.     }
  292.     
  293.     if ((!gInWord) && (oneChar=='s') && ((NextChar(1)|0x20)=='a') && ((NextChar(2)|0x20)=='y') && ((NextChar(3)|0x20)=='s'))
  294.     {
  295.         gInWord=TRUE;
  296.         StoreString("\pSEZ");
  297.         InputPlus(4);
  298.         return;
  299.     }
  300.     
  301.     gInWord=TRUE;
  302.     StoreChar(ThisChar()&0xdf);
  303.     InputPlus(1);
  304. }
  305.